<?php
////////////////////////////////////////////////////////////////////////////
//                                                                        //
// NOTICE OF COPYRIGHT                                                    //
//                                                                        //
// Dean`s Office for Moodle                                               //
// Электронный деканат                                                    //
// <http://deansoffice.ru/>                                               //
//                                                                        //
// Copyright (C) 2008-2999  Alex Djachenko (Алексей Дьяченко)             //
// alex-pub@my-site.ru                                                    //
// Copyright (C) 2008-2999  Evgenij Cigancov (Евгений Цыганцов)           //
// Copyright (C) 2008-2999  Ilia Smirnov (Илья Смирнов)                   //
// Copyright (C) 2008-2999  Mariya Rojayskaya (Мария Рожайская)           //
//                                                                        //
// This program is free software: you can redistribute it and/or modify   //
// it under the terms of the GNU General Public License as published by   //
// the Free Software Foundation, either version 3 of the Licensen.        //
//                                                                        //
// This program is distributed in the hope that it will be useful,        //
// but WITHOUT ANY WARRANTY; without even the implied warranty of         //
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the          //
// GNU General Public License for more details.                           //
//                                                                        //
// You should have received a copy of the GNU General Public License      //
// along with this program.  If not, see <http://www.gnu.org/licenses/>.  //
//                                                                        //
////////////////////////////////////////////////////////////////////////////
require_once('lib.php');

$DOF->modlib('widgets')->webform();

// объявляем форму
class dof_im_atest_widgets_form extends dof_modlib_widgets_form
{
    /** Объявление класса формы
    */
    function definition()
    {
        global $DOF;
        $this->dof = $DOF;
        $mform    = $this->_form;
        // тестирование dof_get_select_values()
        $ages = $this->dof_get_select_values($this->dof->storage('ages')->get_list(), 
                                                array(54 => 'val1 (key54)', 66 => 'val2 (key66)'), 'id');
        $mform->addElement('select', 'testselect', 'blabla', $ages);
        
        // тестирование одноразового submit
        $submit = &$mform->addElement('dof_single_use_submit', 'testsinglesubmit', 'blabla');
        $submit->setPleaseWaitText($this->dof->modlib('ig')->igs('processing'));
        
        // тестирование элемента ajaxselect
        // родительский элемент
        $parentoptions = array(1 => '1111', 2 => '2222');
        $mform->addElement('select', 'parentselect', 'parentselect', $parentoptions);
        
        // дочерний элемент
        $ajaxoptions = 
        array(
            'plugintype' => 'im',
            'plugincode' => 'atest',
            'querytype'  => 'test_ajaxselect',
            'sesskey'    => sesskey()
        );
        // Добавляем параметры в url
        $ajaxselecturl = $DOF->url_modlib('widgets', '/json.php', $ajaxoptions);
        $childoptions = 
        array(
                'url'      => $ajaxselecturl,
                'parentid' => 'id_parentselect'
            );
        $mform->addElement('dof_ajaxselect', 'childselect', 'childselect', null, $childoptions);
        
        $childoptions2 = 
        array(
                'url'      => $ajaxselecturl,
                'parentid' => 'id_childselect'
            );
        $mform->addElement('dof_ajaxselect', 'childselect2', 'childselect2', null, $childoptions2);
        
        $mform->addElement('submit', 'submit', 'submit');
    }
    
    /** Дополнительное определение класса. Используется для
    */
    function definition_after_data()
    {
    
    }
    
    /** Проверки данных формы
    */
    function validation($data, $files)
    {
        echo 'validation:';
        print_object($data);
    }
    
    public function process()
    {
        if ( $data = $this->get_data() )
        {
            //add_to_log(0,'','test'.time(), '', time());
            echo 'process:';
            print_object($data);
        }
    }
}
    
?>